package com.marketfarm.shared.entity;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import javax.jdo.PersistenceManager;
import javax.jdo.annotations.Extension;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;

import com.marketfarm.server.dao.DAO;
import com.marketfarm.shared.entity.Item.TipoItem;

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Usuario implements Serializable {

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
	private String key;
	private String email;
	private String nick;
	private String senha;
	private Double dinheiro;
	
	@Persistent(serialized = "true", defaultFetchGroup = "true")
	private Map<TipoItem, Integer> quantidadeItem;
	
	@Persistent(serialized = "true", defaultFetchGroup = "true")
	private Map<TipoItem, Integer> quantidadeItemAVenda;
	
	public String getKey() {
		return key;
	}
	public void setKey(String key) {
		this.key = key;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getNick() {
		return nick;
	}
	public void setNick(String nick) {
		this.nick = nick;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public Double getDinheiro() {
		return dinheiro;
	}
	public void setDinheiro(Double dinheiro) {
		this.dinheiro = dinheiro;
	}
	public Map<TipoItem, Integer> getQuantidadeItem() {
		return quantidadeItem;
	}
	public void setQuantidadeItem(Map<TipoItem, Integer> quantidadeItem) {
		this.quantidadeItem = quantidadeItem;
	}
	public Map<TipoItem, Integer> getQuantidadeItemAVenda() {
		return quantidadeItemAVenda;
	}
	public void setQuantidadeItemAVenda(Map<TipoItem, Integer> quantidadeItemAVenda) {
		this.quantidadeItemAVenda = quantidadeItemAVenda;
	}
}
